<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArTCM2 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArTCM2.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArTCM2-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArTCM2 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__OptionalClasses.html">Optional Classes</a> &#124; <a class="el" href="group__DeviceClasses.html">Device Interface Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface to the PNI TCM 2, TCM 2.5, and TCM 2.6 3-axis compass (magnetometer) that can sense absolute heading, as well as pitch, roll, and includes a temperature sensor.  
 <a href="classArTCM2.html#details">More...</a></p>

<p><code>#include &lt;ArTCM2.h&gt;</code></p>

<p>Inherited by <a class="el" href="classArTCMCompassDirect.html">ArTCMCompassDirect</a><code> [virtual]</code>, and <a class="el" href="classArTCMCompassRobot.html">ArTCMCompassRobot</a><code> [virtual]</code>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae58e769bfd2e321b2e698a8cdfd20ecc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae58e769bfd2e321b2e698a8cdfd20ecc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>addHeadingDataCallback</b> (<a class="el" href="classArFunctor1.html">ArFunctor1</a>&lt; double &gt; *f)</td></tr>
<tr class="separator:ae58e769bfd2e321b2e698a8cdfd20ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03d68f7ee1b1ee2b6cf876c0908f43af"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a03d68f7ee1b1ee2b6cf876c0908f43af">blockingConnect</a> (unsigned long connectTimeout=5000)</td></tr>
<tr class="memdesc:a03d68f7ee1b1ee2b6cf876c0908f43af"><td class="mdescLeft">&#160;</td><td class="mdescRight">If a connection/initialization procedure is required, perform it, wait until data is recieved from the compass, and return true on success, false on failure.  <a href="#a03d68f7ee1b1ee2b6cf876c0908f43af">More...</a><br /></td></tr>
<tr class="separator:a03d68f7ee1b1ee2b6cf876c0908f43af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba360fbc82b2c25cd25a20f42e4c206"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaba360fbc82b2c25cd25a20f42e4c206"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#aaba360fbc82b2c25cd25a20f42e4c206">commandAutoCalibration</a> (void)=0</td></tr>
<tr class="memdesc:aaba360fbc82b2c25cd25a20f42e4c206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start auto calibration. <br /></td></tr>
<tr class="separator:aaba360fbc82b2c25cd25a20f42e4c206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b57b5ac6e217d7494cc72cfae61f171"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b57b5ac6e217d7494cc72cfae61f171"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a8b57b5ac6e217d7494cc72cfae61f171">commandContinuousPackets</a> (void)=0</td></tr>
<tr class="memdesc:a8b57b5ac6e217d7494cc72cfae61f171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the compass sending a continuous stream of readings at its fastest rate. <br /></td></tr>
<tr class="separator:a8b57b5ac6e217d7494cc72cfae61f171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1af3c0170ed4c7a63fa6d00ce4a8d6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1af3c0170ed4c7a63fa6d00ce4a8d6b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#af1af3c0170ed4c7a63fa6d00ce4a8d6b">commandJustCompass</a> (void)=0</td></tr>
<tr class="memdesc:af1af3c0170ed4c7a63fa6d00ce4a8d6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command to just send compass heading data. <br /></td></tr>
<tr class="separator:af1af3c0170ed4c7a63fa6d00ce4a8d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a533b040e10e90d12bd9daebb409a200a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a533b040e10e90d12bd9daebb409a200a"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a533b040e10e90d12bd9daebb409a200a">commandOff</a> (void)=0</td></tr>
<tr class="memdesc:a533b040e10e90d12bd9daebb409a200a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn sending of data off (Compass remains powered on, this is not its not low power standby mode) <br /></td></tr>
<tr class="separator:a533b040e10e90d12bd9daebb409a200a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7922b19e37dd55443f8ca4fd60c3709a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7922b19e37dd55443f8ca4fd60c3709a"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a7922b19e37dd55443f8ca4fd60c3709a">commandOnePacket</a> (void)=0</td></tr>
<tr class="memdesc:a7922b19e37dd55443f8ca4fd60c3709a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get one reading from the compass. <br /></td></tr>
<tr class="separator:a7922b19e37dd55443f8ca4fd60c3709a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a932f31b8962d13d634e79b74337e817b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a932f31b8962d13d634e79b74337e817b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a932f31b8962d13d634e79b74337e817b">commandSoftReset</a> (void)=0</td></tr>
<tr class="memdesc:a932f31b8962d13d634e79b74337e817b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command to do a soft reset of the compass. <br /></td></tr>
<tr class="separator:a932f31b8962d13d634e79b74337e817b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43df9ef61d5f9b25ef56a268635711c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43df9ef61d5f9b25ef56a268635711c9"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a43df9ef61d5f9b25ef56a268635711c9">commandStopCalibration</a> (void)=0</td></tr>
<tr class="memdesc:a43df9ef61d5f9b25ef56a268635711c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop calibration. <br /></td></tr>
<tr class="separator:a43df9ef61d5f9b25ef56a268635711c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60d1e9687c237dec7f5c4df552694743"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60d1e9687c237dec7f5c4df552694743"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a60d1e9687c237dec7f5c4df552694743">commandUserCalibration</a> (void)=0</td></tr>
<tr class="memdesc:a60d1e9687c237dec7f5c4df552694743"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start user calibration. <br /></td></tr>
<tr class="separator:a60d1e9687c237dec7f5c4df552694743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadac4c6e5254827cc598dbfab7e671fe"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#aadac4c6e5254827cc598dbfab7e671fe">connect</a> ()</td></tr>
<tr class="memdesc:aadac4c6e5254827cc598dbfab7e671fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">If a connection/initialization procedure is required, perform it, and return true on success, false on failure.  <a href="#aadac4c6e5254827cc598dbfab7e671fe">More...</a><br /></td></tr>
<tr class="separator:aadac4c6e5254827cc598dbfab7e671fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d354c63ca69759dcef14f7d12a5d1bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d354c63ca69759dcef14f7d12a5d1bd"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a1d354c63ca69759dcef14f7d12a5d1bd">getCalibrationH</a> (void) const </td></tr>
<tr class="memdesc:a1d354c63ca69759dcef14f7d12a5d1bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the calibration H score (See TCM Manual) <br /></td></tr>
<tr class="separator:a1d354c63ca69759dcef14f7d12a5d1bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adffff5238710ed005d2b85ad632ddc58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adffff5238710ed005d2b85ad632ddc58"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#adffff5238710ed005d2b85ad632ddc58">getCalibrationM</a> (void) const </td></tr>
<tr class="memdesc:adffff5238710ed005d2b85ad632ddc58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the calibration M score (See TCM Manual) <br /></td></tr>
<tr class="separator:adffff5238710ed005d2b85ad632ddc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c147f489fefc9b0b2180e5121ebe3ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c147f489fefc9b0b2180e5121ebe3ca"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a3c147f489fefc9b0b2180e5121ebe3ca">getCalibrationV</a> (void) const </td></tr>
<tr class="memdesc:a3c147f489fefc9b0b2180e5121ebe3ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the calibration V score (See TCM Manual) <br /></td></tr>
<tr class="separator:a3c147f489fefc9b0b2180e5121ebe3ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf62aab4d19e4f1924794ea6532d794f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#acf62aab4d19e4f1924794ea6532d794f">getCompass</a> (void) const </td></tr>
<tr class="memdesc:acf62aab4d19e4f1924794ea6532d794f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the compass heading (-180, 180] degrees.  <a href="#acf62aab4d19e4f1924794ea6532d794f">More...</a><br /></td></tr>
<tr class="separator:acf62aab4d19e4f1924794ea6532d794f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37ea3f24df1ea8658e200a6a0c788d82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37ea3f24df1ea8658e200a6a0c788d82"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>getError</b> (void) const </td></tr>
<tr class="separator:a37ea3f24df1ea8658e200a6a0c788d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02eaefd0ee678b5e01f5d94ba883cd3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02eaefd0ee678b5e01f5d94ba883cd3f"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a02eaefd0ee678b5e01f5d94ba883cd3f">getHeading</a> (void) const </td></tr>
<tr class="memdesc:a02eaefd0ee678b5e01f5d94ba883cd3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the compass heading (-180, 180] degrees. <br /></td></tr>
<tr class="separator:a02eaefd0ee678b5e01f5d94ba883cd3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef135653337700db560d061cb4722d46"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef135653337700db560d061cb4722d46"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#aef135653337700db560d061cb4722d46">getPacCount</a> (void)</td></tr>
<tr class="memdesc:aef135653337700db560d061cb4722d46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of readings recieved in the last second. <br /></td></tr>
<tr class="separator:aef135653337700db560d061cb4722d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a351381b91db9a6ecf47f68df800998f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a351381b91db9a6ecf47f68df800998f8"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a351381b91db9a6ecf47f68df800998f8">getPitch</a> (void) const </td></tr>
<tr class="memdesc:a351381b91db9a6ecf47f68df800998f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the pitch (-180,180] degrees. <br /></td></tr>
<tr class="separator:a351381b91db9a6ecf47f68df800998f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01a4ae402073f91a9e79dced2181a301"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01a4ae402073f91a9e79dced2181a301"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a01a4ae402073f91a9e79dced2181a301">getRoll</a> (void) const </td></tr>
<tr class="memdesc:a01a4ae402073f91a9e79dced2181a301"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the roll (-180,180] degrees. <br /></td></tr>
<tr class="separator:a01a4ae402073f91a9e79dced2181a301"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41ebde0196e3b1b7973bd8e7e7f1ed2d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41ebde0196e3b1b7973bd8e7e7f1ed2d"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a41ebde0196e3b1b7973bd8e7e7f1ed2d">getTemperature</a> (void) const </td></tr>
<tr class="memdesc:a41ebde0196e3b1b7973bd8e7e7f1ed2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the temperature (degrees C) <br /></td></tr>
<tr class="separator:a41ebde0196e3b1b7973bd8e7e7f1ed2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65b7d3f541cef8f29557d4d43defc255"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65b7d3f541cef8f29557d4d43defc255"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a65b7d3f541cef8f29557d4d43defc255">getXMagnetic</a> (void) const </td></tr>
<tr class="memdesc:a65b7d3f541cef8f29557d4d43defc255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the magnetic field X component (See TCM2 Manual) <br /></td></tr>
<tr class="separator:a65b7d3f541cef8f29557d4d43defc255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72a1aa71f7981d8d3f121b7295688c66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72a1aa71f7981d8d3f121b7295688c66"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a72a1aa71f7981d8d3f121b7295688c66">getYMagnetic</a> (void) const </td></tr>
<tr class="memdesc:a72a1aa71f7981d8d3f121b7295688c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the magnetic field Y component (See TCM2 Manual) <br /></td></tr>
<tr class="separator:a72a1aa71f7981d8d3f121b7295688c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d748cf260579ee8bdbdc8afd59c569b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d748cf260579ee8bdbdc8afd59c569b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArTCM2.html#a9d748cf260579ee8bdbdc8afd59c569b">getZMagnetic</a> (void) const </td></tr>
<tr class="memdesc:a9d748cf260579ee8bdbdc8afd59c569b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the magnetic field Z component (See TCM2 Manual) <br /></td></tr>
<tr class="separator:a9d748cf260579ee8bdbdc8afd59c569b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a083e7bdf789032f1e475c98fadb8e806"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a083e7bdf789032f1e475c98fadb8e806"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveCalibrationH</b> () const </td></tr>
<tr class="separator:a083e7bdf789032f1e475c98fadb8e806"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65009c309ed7b02ec80816bf4f43370e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65009c309ed7b02ec80816bf4f43370e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveCalibrationM</b> () const </td></tr>
<tr class="separator:a65009c309ed7b02ec80816bf4f43370e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22141972b24b2a2d9772bbc7d47a5e3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22141972b24b2a2d9772bbc7d47a5e3c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveCalibrationV</b> () const </td></tr>
<tr class="separator:a22141972b24b2a2d9772bbc7d47a5e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ccf7c3b0129243fb5d3e3ce820eb308"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ccf7c3b0129243fb5d3e3ce820eb308"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveHeading</b> () const </td></tr>
<tr class="separator:a3ccf7c3b0129243fb5d3e3ce820eb308"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4479c4aa2289c8b28fcd585271bcd427"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4479c4aa2289c8b28fcd585271bcd427"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>havePitch</b> () const </td></tr>
<tr class="separator:a4479c4aa2289c8b28fcd585271bcd427"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb690b519a6ff18b6720af405ab7d155"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb690b519a6ff18b6720af405ab7d155"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveRoll</b> () const </td></tr>
<tr class="separator:acb690b519a6ff18b6720af405ab7d155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b968d6746cf9591698304deda8b2bc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b968d6746cf9591698304deda8b2bc8"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveTemperature</b> () const </td></tr>
<tr class="separator:a0b968d6746cf9591698304deda8b2bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af42df71dc038815848da12433265045f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af42df71dc038815848da12433265045f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveXMagnetic</b> () const </td></tr>
<tr class="separator:af42df71dc038815848da12433265045f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36b27e61aae250955fe3fe9a71e5025d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36b27e61aae250955fe3fe9a71e5025d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveYMagnetic</b> () const </td></tr>
<tr class="separator:a36b27e61aae250955fe3fe9a71e5025d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af32c92716dd194f85dd51a9fdb28cf7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af32c92716dd194f85dd51a9fdb28cf7c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>haveZMagnetic</b> () const </td></tr>
<tr class="separator:af32c92716dd194f85dd51a9fdb28cf7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aa6ff7672563641f5eee4058e28b8f5cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6ff7672563641f5eee4058e28b8f5cc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>incrementPacketCount</b> ()</td></tr>
<tr class="separator:aa6ff7672563641f5eee4058e28b8f5cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a271dada876daa446ffc4a06a439745"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a271dada876daa446ffc4a06a439745"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>invokeHeadingDataCallbacks</b> (double heading)</td></tr>
<tr class="separator:a9a271dada876daa446ffc4a06a439745"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a28fad8fb77d766309c1768cdf5074f29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28fad8fb77d766309c1768cdf5074f29"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myCalibrationH</b></td></tr>
<tr class="separator:a28fad8fb77d766309c1768cdf5074f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3e33fe6260c8099bebdf16d742fd827"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3e33fe6260c8099bebdf16d742fd827"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myCalibrationM</b></td></tr>
<tr class="separator:ae3e33fe6260c8099bebdf16d742fd827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f7abd0feeb14b7381571035825c5bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f7abd0feeb14b7381571035825c5bd"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myCalibrationV</b></td></tr>
<tr class="separator:a91f7abd0feeb14b7381571035825c5bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa37e5f928d20d544e20e2f626a8638b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa37e5f928d20d544e20e2f626a8638b0"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myError</b></td></tr>
<tr class="separator:aa37e5f928d20d544e20e2f626a8638b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52a3a94f52cf1030a6b785a4d6af447f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52a3a94f52cf1030a6b785a4d6af447f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveCalibrationH</b></td></tr>
<tr class="separator:a52a3a94f52cf1030a6b785a4d6af447f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3909479575805e6f5ca1f975fc03a7d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3909479575805e6f5ca1f975fc03a7d4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveCalibrationM</b></td></tr>
<tr class="separator:a3909479575805e6f5ca1f975fc03a7d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06774f20fccbae8f1264385fc5179e81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06774f20fccbae8f1264385fc5179e81"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveCalibrationV</b></td></tr>
<tr class="separator:a06774f20fccbae8f1264385fc5179e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a595d3c71f181f19c808404afb341c799"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a595d3c71f181f19c808404afb341c799"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveHeading</b></td></tr>
<tr class="separator:a595d3c71f181f19c808404afb341c799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17a6d4893a57bb48f9265fa1bd42c5f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17a6d4893a57bb48f9265fa1bd42c5f6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHavePitch</b></td></tr>
<tr class="separator:a17a6d4893a57bb48f9265fa1bd42c5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d48d799879bb888a2b8a85d682a6ee4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d48d799879bb888a2b8a85d682a6ee4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveRoll</b></td></tr>
<tr class="separator:a7d48d799879bb888a2b8a85d682a6ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1808291437800e5e9a8cb8a5059f0937"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1808291437800e5e9a8cb8a5059f0937"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveTemperature</b></td></tr>
<tr class="separator:a1808291437800e5e9a8cb8a5059f0937"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4c14c82e1174c5c6fbd0d19f16caa6e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4c14c82e1174c5c6fbd0d19f16caa6e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveXMag</b></td></tr>
<tr class="separator:ab4c14c82e1174c5c6fbd0d19f16caa6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0457ed151c0a5b986173e8bc8a879e16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0457ed151c0a5b986173e8bc8a879e16"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveYMag</b></td></tr>
<tr class="separator:a0457ed151c0a5b986173e8bc8a879e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fe3aabb164af9e6ec64456dc66adf87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fe3aabb164af9e6ec64456dc66adf87"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myHaveZMag</b></td></tr>
<tr class="separator:a6fe3aabb164af9e6ec64456dc66adf87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac71413c7e1cf197df8ce228ab55810fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac71413c7e1cf197df8ce228ab55810fe"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myHeading</b></td></tr>
<tr class="separator:ac71413c7e1cf197df8ce228ab55810fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66e4ab37260c42e74038126b110d0a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae66e4ab37260c42e74038126b110d0a8"></a>
std::list&lt; <a class="el" href="classArFunctor1.html">ArFunctor1</a>&lt; double &gt; * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myHeadingDataCallbacks</b></td></tr>
<tr class="separator:ae66e4ab37260c42e74038126b110d0a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2348aaa43f9a9fb6159d5270be714837"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2348aaa43f9a9fb6159d5270be714837"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myPacCount</b></td></tr>
<tr class="separator:a2348aaa43f9a9fb6159d5270be714837"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5a8853ca4d3706ff4be864e3cdf7e5b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5a8853ca4d3706ff4be864e3cdf7e5b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myPacCurrentCount</b></td></tr>
<tr class="separator:ae5a8853ca4d3706ff4be864e3cdf7e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02c014ce92675dd1f270f49e5676b465"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02c014ce92675dd1f270f49e5676b465"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myPitch</b></td></tr>
<tr class="separator:a02c014ce92675dd1f270f49e5676b465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa43d426776b8507a9a7803a7839a0584"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa43d426776b8507a9a7803a7839a0584"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myRoll</b></td></tr>
<tr class="separator:aa43d426776b8507a9a7803a7839a0584"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a2519d3d07d38454a1771de5a1f2e44"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a2519d3d07d38454a1771de5a1f2e44"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myTemperature</b></td></tr>
<tr class="separator:a0a2519d3d07d38454a1771de5a1f2e44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a287e997b705579d71a4fa194c9e8f240"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a287e997b705579d71a4fa194c9e8f240"></a>
time_t&#160;</td><td class="memItemRight" valign="bottom"><b>myTimeLastPacket</b></td></tr>
<tr class="separator:a287e997b705579d71a4fa194c9e8f240"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13e832554e3bb028a0fc8e822905f6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af13e832554e3bb028a0fc8e822905f6a"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myXMag</b></td></tr>
<tr class="separator:af13e832554e3bb028a0fc8e822905f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd57be5bf6b8df2e55b0ea691271e894"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd57be5bf6b8df2e55b0ea691271e894"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myYMag</b></td></tr>
<tr class="separator:afd57be5bf6b8df2e55b0ea691271e894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec3796c647815bc0136a08f76e8f32ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec3796c647815bc0136a08f76e8f32ee"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myZMag</b></td></tr>
<tr class="separator:aec3796c647815bc0136a08f76e8f32ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface to the PNI TCM 2, TCM 2.5, and TCM 2.6 3-axis compass (magnetometer) that can sense absolute heading, as well as pitch, roll, and includes a temperature sensor. </p>
<p>See subclasses and <a class="el" href="classArCompassConnector.html" title="Use this class to create an instance of a TCM2 subclass and connect to the device based on program co...">ArCompassConnector</a> for more information, as well as your robot manuals. PNI's TCM manual is also available for download at the MobileRobots support website, documentation section.</p>
<p>This is an abstract interface. To create a compass interface object, instantiate a subclass or use <a class="el" href="classArCompassConnector.html" title="Use this class to create an instance of a TCM2 subclass and connect to the device based on program co...">ArCompassConnector</a>.</p>
<dl class="section note"><dt>Note</dt><dd>The compass returns a heading relative to magnetic north, which varies depending on your location in the Earth's magnetic field (declination also varies slowly over time as the Earth's magnetic field changes). To find true north, you must apply an offset, or declination. For example, on June 1, 2007, the magnetic declination of MobileRobots' location of Amherst, NH, USA was 15 1/6 degrees West, so a value of approx. -15.166666 would have to be applied. You can look up declination values for various locations on Earth at <a href="http://www.ngdc.noaa.gov/seg/geomag/jsp/Declination.jsp">http://www.ngdc.noaa.gov/seg/geomag/jsp/Declination.jsp</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="demo_8cpp-example.html#_a29">demo.cpp</a>.</dd>
</dl></div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a03d68f7ee1b1ee2b6cf876c0908f43af"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArTCM2::blockingConnect </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>connectTimeout</em> = <code>5000</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If a connection/initialization procedure is required, perform it, wait until data is recieved from the compass, and return true on success, false on failure. </p>
<p>Otherwise, just return true. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="demo_8cpp-example.html#a31">demo.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="aadac4c6e5254827cc598dbfab7e671fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArTCM2::connect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If a connection/initialization procedure is required, perform it, and return true on success, false on failure. </p>
<p>Otherwise, just return true. </p>

<p>Reimplemented in <a class="el" href="classArTCMCompassDirect.html#a62383530bc16af4d2b923ebfbc98faa6">ArTCMCompassDirect</a>.</p>

</div>
</div>
<a class="anchor" id="acf62aab4d19e4f1924794ea6532d794f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArTCM2::getCompass </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the compass heading (-180, 180] degrees. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000071">Deprecated:</a></b></dt><dd>Use <a class="el" href="classArTCM2.html#a02eaefd0ee678b5e01f5d94ba883cd3f" title="Get the compass heading (-180, 180] degrees. ">getHeading()</a> </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArTCM2.h</li>
<li>ArTCM2.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArTCM2.html">ArTCM2</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
